home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-04 | 1.0 KB | 54 lines | [TEXT/KAHL] |
- "CPathArray.h"
-
- void CPathArray::IPathArray( void )
- {
- CArray::IArray( sizeof( FSSpec));
-
- } /* CPathArray::IPathArray */
-
-
- void CPathArray::IRes( short strListID)
- {
- Handle strList;
- Str255 str;
- short i, numStrings;
-
- IArray( sizeof( FSSpec) );
-
- strList = GetResource( 'PREF', strListID);
- if (strList)
- {
- numStrings = GetHandleSize(strList)/sizeof( FSSpec );
- Resize( numStrings);
-
- for (i = 1; i <= numStrings; i++)
- {
- OSErr iErr;
- FSSpec spec;
- BlockMove((i-1)*sizeof( FSSpec )+*strList, &spec, sizeof( FSSpec ));
- InsertAtIndex( &spec, i);
- }
- }
- else
- {
- /* ensure the STR# resource exists */
-
- strList = GetResource( 'STR#', strListID);
- FailNILRes( strList);
- /* resize once to accomodate all the strings */
-
- numStrings = *(short*) *strList;
- Resize( numStrings);
-
- for (i = 1; i <= numStrings; i++)
- {
- OSErr iErr;
- FSSpec spec;
- GetIndString( str, strListID, i);
- iErr = FSMakeFSSpec(0,0,str,&spec);
- if (( iErr==fnfErr ) || !iErr)
- InsertAtIndex( &spec, i);
- }
- }
- }
- .*QÒn Ö